package site.wenneng.dev.controller;

import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import site.wenneng.dev.objs.dto.StoryTaskViewDTO;
import site.wenneng.dev.objs.dto.common.Result;
import site.wenneng.dev.objs.dto.sprint.SprintStoryQueryDTO;
import site.wenneng.dev.objs.dto.sprint.SprintStoryTaskViewDTO;
import site.wenneng.dev.objs.po.DefineSprintPO;
import site.wenneng.dev.service.SprintService;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/sprint")
@AllArgsConstructor
public class SprintController {

    private SprintService sprintService;

    @GetMapping("/story")
    public Result<List<SprintStoryTaskViewDTO>> listStory(SprintStoryQueryDTO queryDTO) {
        Integer sprintId = queryDTO.getSprintId();
        if (queryDTO.getSprintId() == null) {
            sprintId = Optional.ofNullable(sprintService.queryCurrentSprint())
                    .map(DefineSprintPO::getSprintId).orElse(null);
        }

        return Result.ok(sprintService.listStory(sprintId));
    }
}
